Current lighting systems generally use one of two methods to control multiple lights in a coordinated fashion. They are:                Centralized control: A central controller keeps track of the intensity of each light it is controlling and directly controls the intensity of lights. For example a DMX controller constantly outputs the intensity to the lights it controls. The controller directly computes new intensity values based on the user's requirements. Other systems keep local copies of the intensity of each light they control and update that copy when they send commands to remote light fixtures to change intensity.        Stateless distributed control: Some low-cost systems (for example X10) do not keep track of the intensity at all, they are considered ‘stateless’ in that there is no central control knowledge of a fixture's current state. They send commands such as “increase brightness”, “decrease brightness”, “turn light on at full intensity” or “turn light off” to remote lights. These systems count on the inherent feedback through the user. The user presses a button to increase the intensity of a light and releases the button when he/she observes the light at an acceptable intensity.        
A function of lighting control systems is scene management. Scene management allows various pleasing combinations of lights to be stored and set on command (for example lighting in a home theatre may have scenes for use of the room as a playroom and use of the room to watch a movie). Effective scene management requires that a controller (at some location) keep track of current light fixture attributes so that it can transition lights from one scene to another. For white lighting these attributes are usually just the intensity. Color capable lights require additional information. Scene management is difficult to do reliably with stateless distributed control.
Centralized control becomes expensive for large numbers of light fixtures and for installations that want multiple control devices, for example multiple switch plates (switch panels) or different control systems such as a switch plate, a remote (wired or wireless) control and a computer control. A central controller controlling a large number of lights must have the compute ability and communication bandwidth to simultaneously control all lights involved in a scene transition. A system employing multiple system controllers must keep a synchronized record of the state of all lights in all controllers. Either there is a central “database” of the state that all controllers access whenever they update light state, or each controller must broadcast changes it makes to the state of the lights to all other controllers. U.S. Pat. No. 6,160,359 dated Jan. 30, 1998 to Fleischmann teaches a lighting control apparatus that allows a lighting load to be controlled. The apparatus includes an input device and a means for generating a lighting control request in response to the input device. The lighting control request indicates an identifier and a lighting state for the lighting load. The apparatus further includes a circuit for connecting to a remote computer. The generating means sends the lighting control request to the remote computer via the circuit. The remote computer controls power to the lighting load according to the lighting control request. U.S. Pat. No. 5,191,265 dated Aug. 9, 1991 to D'Aleo et. al teaches a fully modular lighting control system wherein several possible lighting scenes are user defined and stored in the lighting control system for recall by the user upon depression of a selected one of a plurality of scene select buttons.
This problem is exacerbated with color-capable lights. Changing intensity of a white light is a 2-dimensional problem. The intensity is varied over time. The controller takes the period of time the light is to be changed over and changes the intensity in small increments at a rate sufficient to make the change look animated (for example a change in brightness may occur over a 1 second period. The controller might change the intensity 1/30th of the requested amount 30 times over the second for a smooth fade). Changing intensity of a color-capable light is usually a 4-dimensional problem. Color components (for example, red-green-blue or hue-saturation-value) are varied over time. The computational, data storage and communication bandwidth loads are higher for each light.
Color-capable lights are controlled through a color model. One color model that is more intuitive than most is the Hue-Saturation-Value (HSV) model or sometimes known as the Hue-Saturation-Intensity (HSI) model. It is a three-dimensional color model. One axis controls the color's hue (or actual color value). The hue is generally the single word that we would use to describe a ‘composite’ color. A second axis controls the color's saturation. Saturation specifies how pure the color is. A fully saturated color has no white component in it. White is the unsaturated value. A pure red is fully saturated. Pink is a less saturated red. The third axis controls the intensity of the light. The hue, saturation and brightness of a light beam are often specified using a three-dimensional HSV or HSI color tree, as shown in FIG. 1. The color tree shown represents one horizontal slice of the total color spectrum represented by a cylinder.
The vertical axis 10 of the tree specifies the intensity (lightness) of the beam, from nothing at the bottom (that is, black 12) through gray 14 to some maximum value 16 at the top corresponding to the brightest possible white. At each level of the tree (which corresponds to a given lightness or brightness), we draw a hue circle 18 whose circumference shows the various pure, fully saturated, monochromatic colors of the rainbow in wavelength order from red to violet. The shown Hue circle 18 represents but one slice of a cylinder going from black 12 at the bottom to the maximum value 16 or brightest value at the top. The points on a radius line from the center of the tree to some point on the circumference represent saturation via different unsaturated colors formed by mixing some amount of white from the center of the tree with some amount of the color at the end point of the line. These color models are implemented in many computer systems for use by graphic artists when modifying images. As shown in FIG. 1, pink is a mixture of red and white, and the hue of the mixture is still red. Mixtures of yellow and white would produce colors that we would still call yellow, but which also might be described as “cream” white, “warm” white, etc.
Color-capable light fixtures are primarily used for decorative purposes. Systems involving color-capable light fixtures often use many more of these fixtures than an illumination system comprised of white lights because the most attractive scenes involve multiple colors. Although commercial systems can absorb the cost of a complex controller, residential systems need an architecture that can be implemented in a low cost way.
Disparate intelligent electronic devices that need to communicate with each other use a set of rules governing communication between them called a protocol. Protocols specify how data is organized, what the data means and how it is communicated. Protocols allow different kinds of devices, often from different manufacturers, to interact. Protocols are often described in terms of layers. Layers describe certain, related attributes of a protocol. Layers typically start at the lowest level in describing a protocol and move progressively to higher level descriptions.
The lowest level of a protocol is often called the physical layer, which describes the actual physical mechanism by which data is transferred from one device to another. Physical mechanisms can include wired serial interfaces (such as RS232 or USB), infrared light/laser communication, or radio-frequency interfaces. The physical layer is only concerned with moving data bits between devices. Its description does not need to include the meaning of any of the bits or even that they are reliably delivered (for example, data lost through a weak RF connection).
The next level of a protocol is often called the link layer. It assembles the data to be transmitted and adds any necessary information for correct operation of the link layer. For example a RF interface requires many additional bits to make sure a receiver can correctly identify a radio packet. The link layer often is responsible for making sure data is correctly sent between endpoints by adding correction bits (for example to allow a receiver to reconstruct part of a lost packet) or the ability to retransmit lost information.
Layers above the link layer depend on the complexity of the protocol. Often there is only an application level that is responsible for the actual format of the data. The application layer takes requests from one device's control program and gets them sent to another device (or conversely takes data from a communication interface and gives them to the control program). Complex communication protocols used to connect hosts to the Internet may be implemented in many more layers. One example is Transmission Control Protocol/Internet Protocol (TCP/IP), which is used to transmit data over the Internet and local computer networks. The ‘IP’ is responsible for moving packet of data from node to node. The TCP is responsible for verifying the correct delivery of data from client to server.
For the lighting industry the simplest protocol is a simple on/off switch. Electricity either flows or does not flow through a light bulb. The marriage of computers and lighting has vastly increased the capability to control lighting (for example, scene management) but requires more complex protocols. Traditionally protocols have been designed to handle two attributes, dimming and addressing. Dimming allows a controller to send an intensity value to a light. Addressing allows the controller to control a particular light or a particular group of lights in a larger number of controlled lights. Together these attributes allow control of traditional white lighting.
There are many existing commercial products providing computer control over lighting implementing many protocols. There are proprietary protocols that only interoperate between devices made by one manufacturer (for example, Lightolier® Controls). There are licensable protocols designed to allow devices from many manufacturers to work together (for example X10, Insteon™, Z-wave® and UPB for the home, DMX-512, Lon and DALI for commercial automation). The protocols operate a variety of physical interfaces. The most common physical interfaces for home devices are encoding signals on the power line or through RF interfaces. These two methods make installation of devices very easy because there is no additional wiring.
The recent introduction of color capable light fixtures has added additional complexity to the control problem. The most common way of controlling color capable light fixtures is through the industry standard DMX-512 protocol. The DMX-512 protocol has its origins in theatre lighting. It is a digital technology that replaced analog signaling (that required a separate cable per light fixture) with a digital interface that can be daisy chained between light fixtures. The protocol is fairly simple (although recent additions, not so widely used, have increased the complexity). It is based around the concept of a central controller (traditionally a theatre's lighting desk) that controls many lights. The protocol is physically implemented as a serial bit stream transmitted on industry standard RS-485 interface at 250 k-Baud. It consists of up to 512 data bytes that are constantly repeated. Each byte controls one channel (traditionally a single light fixture's intensity). Changing the value of a byte changes the associated light's intensity. Traditionally each light had a set of addressing switches that told the light what byte in the stream it should associate with. The panel operator had to remember, for example, that channel 23 was associated with a particular light. Computers have simplified management. The DMX protocol uses special cable and robust connectors and is well suited to the harsh theater and stage environment.
While suited for commercial application DMX is not well suited for residential use. It requires expensive cabling. Color capable light fixtures require many channels to control their component colors, and there is no standardization of color to channel assignment. This makes configuration and control very difficult. DMX controllers have typically been expensive.
There are also some proprietary protocols for controlling color-capable lights. To date they are focused on very specific problems such as delivering video streams to “walls of light” or control within a light fixture.
To be successful in a residential application a lighting control protocol should have several key attributes.                Ease of installation: The physical layer should not depend on expensive cabling. The protocol should work on inexpensive interfaces such as low-speed packet radio.        Fixture independence: The protocol should be able to control fixtures from different manufacturers without having special fixture-specific attributes. Color should be specified in a way to allow fixtures to compute their own color components.        Wide compatibility: The protocol should enable support of existing white lights.        Addressability: The protocol should allow individual lights and groups of related lights to be controlled.        Low-cost: The protocol should allow low-cost implementations. It needs to work with very simple (inexpensive) micro-controllers. It cannot require a constant stream of data or complex overhead.        
As applied to lighting control, Pulse Width Modulation (PWM) is a technique to digitally (only 1's and 0's) control light intensity. It works by varying the time a digital signal is on within a period. This period is repeated many times per second. The average value of the signals “on” time determines the value of the control signal. PWM is an old technique and has a wide variety of applications including power-supplies, motor and servomotor control, communication devices, class-D audio amplification and light intensity control.
Pulse Width Modulation is commonly applied to controlling the intensity of LED lights. The pulses are repeated at rates of 60 Hz to 50 kHz (the period). Human persistence of vision allows the eye to average these pulses into a solid color. Too long of a period and the eye senses flicker in the generated light. The width of each pulse controls the intensity of the light. A typical color-controlled light fixture has three PWM channels, one for each of the primary additive light colors: red, green and blue. Varying the intensity of each of the primary colors creates different colors.
FIG. 2 (prior art) shows the number of different pulse-widths in one period of time 110 specifies the resolution of control over the intensity. For example a period that can be divided into 256 different pulse-widths provides 256 different intensity levels. Shown are example periods with various amounts of ‘on’ time within the period, low period 112, medium period 114 and high period 116 having a low, medium or high intensity level. The value of 256 is common since it can be represented as the number 0-255 in an 8-bit byte. A system with 256 intensity levels is said to have 8-bit resolution. Generally it is better to have higher resolution control in color lighting systems.
The pulses may be generated in a variety of ways. Typically they are generated using dedicated logic circuits. They could be under the control of software running on an embedded microprocessor/micro-controller. Use of a micro-controller is often the most cost-effective method. Unfortunately low-cost micro-controllers are often limited in the number of computations they can perform each second. This limits their ability to generate high-resolution PWM signals with a reasonable period. Pulse Width Modulation is usually implemented in a micro-controller by setting a component in the micro-controller called a timer to generate a periodic signal. This signal is used as an interrupt source in the micro-controller. Interrupts cause the micro-controller to stop executing the current code and immediately begin executing a special piece of code called an Interrupt Service Routine (ISR). The micro-controller can manage real-time activities (such as generating the regular PWM signals) using interrupts. The period between interrupts is the shortest pulse width. In this way the ISR can look at a set of counter variables and determine when to switch on and off the signal for each channel.
For example consider a system with 8-bit Red, Green and Blue output channels generating an orange-green color. This color may be generated with 33% red, 66% green and 0% blue. These percentage values would be specified as 84 for red (33% of 255), 168 for green (66% of 255) and 0 for blue. These values are loaded into variables in the micro-controller. The micro-controller also has an 8-bit counter that counts from 0 to 255 for each PWM period. The counter is incremented in the ISR along with code that compares its value with the color variables. As long as the counter is less than the value in the color variable then the micro-controller sets the signal associated with each color to a logical 1 value (turns the associated LED on). When the counter is equal to or greater than the color variable then the micro-controller turns the signal off. In this example the red signal would be on approximately 33% of the time of each period, the green on approximately 66% of the time and the blue signal would never be turned on.
The micro-controller is usually processing other tasks in addition to generating the PWM signals. For example receiving commands from an external controller or executing the code to compute color values used in a fade between two colors. These other tasks are handled in the code that is interrupted by the timer. The PWM signal generation is handled in the ISR since it must have “real-time” response (to prevent varying intensity in the LEDs). When the ISR is done processing for one pulse interval in the PWM period the micro-controller is free to perform the other tasks. Software engineers attempt to optimize the code in the ISR to take the least amount of time possible (least number of machine instructions). The amount of time the ISR takes to execute determines the maximum performance of the PWM. The amount of time the ISR takes to execute plus overhead allowed for other task execution determines the practical performance of the PWM in a particular micro-controller running at a particular clock rate.
Each additional bit of resolution requires double the number of interrupts. Consider two PWM implementations with 7-bit and 8-bit resolution and a PWM period of 10 mSec (100 PWM periods per second). The PWM with 7-bit resolution breaks each 10 mSec period into 128 intervals and requires 128×100=12,800 interrupts per second. The PWM with 8-bit resolution breaks each 10 mSec period into 256 intervals and requires 256×100=25,600 interrupts per second. Although the 8-bit resolution PWM provides much finer control of light intensity it also requires significantly more processing.
There are other complicating factors in real systems that make actual PWM implementations more complex. LED lights do not exhibit a linear increase in intensity with linear increases in PWM control. PWM implementations often have variable pulse widths to account for this. These increase the computational load in the micro-controller even further.
What is needed is a system architecture that allows a low cost architecture providing lighting control without requiring central state management, having ease of installation, fixture independence and wide compatibility. The present invention resolves these problems as will be described herein with distributed lighting control architecture.